Continuous Integration (CI) এবং Continuous Deployment (CD) কনফিগার করা

Web Development - ফাস্টএপিআই (FastAPI) - FastAPI এর জন্য Continuous Integration এবং Deployment
243

Continuous Integration (CI) এবং Continuous Deployment (CD) হল সফটওয়্যার ডেভেলপমেন্ট প্রক্রিয়া, যা আপনাকে কোডের পরিবর্তন দ্রুত এবং স্বয়ংক্রিয়ভাবে পরীক্ষা, বিল্ড এবং ডিপ্লয় করতে সহায়তা করে। FastAPI অ্যাপ্লিকেশনের জন্য CI/CD কনফিগার করা আপনাকে অটোমেটেড টেস্টিং, কোড কভারেজ এবং প্রোডাকশন পরিবেশে অ্যাপ্লিকেশন ডিপ্লয়মেন্ট দ্রুত করতে সহায়তা করবে।

এখানে আমরা GitHub Actions এবং Heroku প্ল্যাটফর্ম ব্যবহার করে FastAPI অ্যাপ্লিকেশনের জন্য CI/CD কনফিগার করার প্রক্রিয়া দেখব।


Step 1: GitHub রিপোজিটরি তৈরি করা

প্রথমে, আপনার FastAPI অ্যাপ্লিকেশনটি একটি GitHub রিপোজিটরিতে আপলোড করুন। যদি এটি না থাকে, তবে একটি রিপোজিটরি তৈরি করুন এবং সেখানে অ্যাপ পুশ করুন।

উদাহরণ: FastAPI অ্যাপের ফোল্ডার স্ট্রাকচার

my_fastapi_project/
├── app/
│   ├── main.py
│   ├── requirements.txt
├── .github/
│   └── workflows/
│       └── ci.yml

Step 2: requirements.txt ফাইল তৈরি করা

requirements.txt ফাইল তৈরি করে FastAPI এবং অন্যান্য প্যাকেজগুলোর ডিপেনডেন্সি উল্লেখ করুন:

fastapi
uvicorn
pytest
httpx

Step 3: GitHub Actions CI কনফিগার করা

GitHub Actions CI কনফিগারেশন ফাইল তৈরি করতে হবে, যা GitHub রিপোজিটরিতে /.github/workflows/ci.yml ফোল্ডারে থাকবে।

উদাহরণ: ci.yml ফাইল

name: FastAPI CI

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: '3.9'

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt

    - name: Run tests
      run: |
        pytest > result.log; tail -n 10 result.log

এখানে:

  • on: রিপোজিটরিতে main ব্রাঞ্চে কোড পুশ বা পুল রিকোয়েস্ট হলে CI প্রক্রিয়া শুরু হবে।
  • jobs: একাধিক জব চলবে, যেখানে একাধিক স্টেপ রয়েছে:
    • Checkout code: রিপোজিটরি থেকে কোড চেক আউট করা।
    • Set up Python: Python 3.9 সেটআপ করা।
    • Install dependencies: requirements.txt ফাইল থেকে ডিপেনডেন্সি ইনস্টল করা।
    • Run tests: pytest দিয়ে টেস্ট চালানো।

Step 4: GitHub Actions CI রান করা

এখন, আপনি GitHub Actions এর মাধ্যমে CI টেস্ট রান করতে পারবেন। GitHub রিপোজিটরি-তে কোড পুশ করার পর, CI প্রক্রিয়া শুরু হবে এবং টেস্টিং রিপোর্ট GitHub Actions এর মধ্যে দেখতে পারবেন।


Step 5: Continuous Deployment (CD) কনফিগার করা

FastAPI অ্যাপ্লিকেশনটি Heroku বা অন্য কোন প্রোডাকশন পরিবেশে ডিপ্লয় করার জন্য, Heroku একটি জনপ্রিয় পছন্দ। এখানে আমরা Heroku প্ল্যাটফর্ম ব্যবহার করে CD কনফিগার করব।

Heroku CLI ইনস্টল:

প্রথমে Heroku CLI ইনস্টল করুন এবং লগইন করুন:

curl https://cli-assets.heroku.com/install.sh | sh
heroku login

Step 6: Heroku অ্যাপ তৈরি করা

Heroku তে একটি নতুন অ্যাপ তৈরি করুন:

heroku create my-fastapi-app

এটি Heroku তে একটি নতুন অ্যাপ তৈরি করবে এবং ডোমেইন নাম প্রদান করবে।


Step 7: GitHub Actions CI থেকে CD কনফিগার করা

Heroku তে অ্যাপ ডিপ্লয় করার জন্য, GitHub Actions কে Heroku অ্যাকাউন্টের সাথে সংযুক্ত করতে হবে। এটি করার জন্য Heroku API Key ব্যবহার করা হয়।

Heroku API Key সেট করা

Heroku অ্যাকাউন্টে লগ ইন করার পর, API Key পেতে, টার্মিনালে নিচের কমান্ডটি রান করুন:

heroku auth:token

এরপর, GitHub রিপোজিটরিতে Secrets সেট করতে হবে:

  1. GitHub রিপোজিটরিতে গিয়ে Settings > Secrets এ যান।
  2. New Repository Secret এ ক্লিক করুন।
  3. Name হিসেবে HEROKU_API_KEY এবং Value হিসেবে আপনার Heroku API Key দিন।

Step 8: GitHub Actions CD কনফিগার করা

এখন GitHub Actions ফাইলে Heroku ডিপ্লয় কনফিগারেশন যুক্ত করতে হবে। ci.yml ফাইলের নিচের অংশে Heroku ডিপ্লয় যোগ করুন:

উদাহরণ: ci.yml ফাইল - Heroku Deployment

name: FastAPI CI/CD

on:
  push:
    branches:
      - main

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: '3.9'

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt

    - name: Run tests
      run: |
        pytest > result.log; tail -n 10 result.log

  deploy:
    needs: test
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Heroku Deployment
      run: |
        git remote add heroku https://git.heroku.com/my-fastapi-app.git
        git push heroku main
      env:
        HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}

এখানে:

  • deploy jobটি test jobটির পরে চালানো হবে।
  • git remote add heroku কমান্ড দিয়ে Heroku রিমোট রিপোজিটরি যোগ করা হচ্ছে এবং git push heroku main দিয়ে কোড Heroku তে ডিপ্লয় করা হচ্ছে।

Step 9: GitHub Actions CD রান করা

GitHub রিপোজিটরিতে main ব্রাঞ্চে কোড পুশ করার পর, CI/CD pipeline রান হবে। GitHub Actions টেস্ট চলানোর পর, অ্যাপ Heroku তে ডিপ্লয় হবে।

রিকোয়েস্ট উদাহরণ:

আপনার FastAPI অ্যাপ এখন Heroku তে ডিপ্লয় হবে, এবং আপনি অ্যাপের URL দিয়ে অ্যাপটি অ্যাক্সেস করতে পারবেন।


CI/CD কনফিগারেশন, বিশেষ করে GitHub Actions এবং Heroku ব্যবহার করে FastAPI অ্যাপ্লিকেশনটি সহজেই স্বয়ংক্রিয়ভাবে টেস্ট এবং প্রোডাকশন পরিবেশে ডিপ্লয় করা যায়। Continuous Integration (CI) কোডের পরিবর্তনগুলো দ্রুত পরীক্ষা এবং নিশ্চিত করতে সহায়ক, এবং Continuous Deployment (CD) প্রক্রিয়া আপনার অ্যাপ্লিকেশনকে স্বয়ংক্রিয়ভাবে প্রোডাকশন পরিবেশে পৌঁছে দেয়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...